home *** CD-ROM | disk | FTP | other *** search
/ SGI Hot Mix 14 / Hot Mix 14.iso / HTML / vendors / finesse / examples / sh / nastran < prev    next >
Text File  |  1996-06-27  |  4KB  |  171 lines

  1. #! /bin/sh
  2. # FINESSEAPPLICATIONKEY sGCoNXRXpROsz
  3. #
  4. # Create simple front end for nastran jobs
  5. # ----------------------------------------
  6. # ----------------------------------------
  7. #
  8. # Use some NASTRAN Info
  9. #----------------------
  10.  
  11. NAST_VER="67"             
  12. NAST_RC="nast${NAST_VER}rc"    
  13. EXE_NAME="NAST${NAST_VER}r2"     
  14.  
  15. # Finesse Initialisation
  16. # ----------------------
  17.  
  18. . ${FINESSEPATH-/usr/local/finesse}/fsshinit
  19.  
  20. # Declare input window
  21. # --------------------
  22.  
  23. yes=Yes
  24. no=No
  25.  
  26. jidname="Input File"
  27. rcfname="RC File"
  28. sdiname="Scratch Directory"
  29.  
  30. naswin="                                      
  31.   FsWindow        -name naswin
  32.                   -title Finesse;
  33.   FsSelectionText -label '$jidname:'
  34.           -name selection
  35.                   -var jid;
  36.   FsSelectionText -label '$rcfname:'
  37.           -name selection
  38.                   -var rcf=$NAST_RC;
  39.  
  40.   FsSeparator -name separator;
  41.  
  42.   FsForm -name form1 -orientation horizontal;
  43.   FsForm -name form2 -parent form1;
  44.   FsList -label '$sdiname:' 
  45.          -items '/net/ws1/scr 
  46.                  /net/filesrv1/scr/scr1 
  47.                  /net/filesrv1/scr/scr2
  48.                  /net/filesrv2/scr/scr1 
  49.                  /net/filesrv2/scr/scr1'
  50.      -var sdi=/net/filesrv1/scr/scr1
  51.      -parent form2 -nvisible 4;
  52.  
  53.   FsSeparator -parent form2 -line no 
  54.               -name separator1;
  55.  
  56.   FsText   -label 'Total Memory (MB):'
  57.            -var mem=50 -parent form2 
  58.        -name text1 -packing tight;
  59.  
  60.   FsText   -label 'Scratch Memory (MB):'
  61.            -var smem=50 -parent form2 
  62.        -name text2 -packing tight;
  63.  
  64.   FsSeparator -name midsep -line dashed 
  65.               -parent form1;
  66.  
  67.   FsForm -name form3 -parent form1;
  68.  
  69.   FsRadio  -label 'Batch Job:'
  70.        -items '$yes $no' -name radio
  71.            -var bat=$yes -parent form3;
  72.  
  73.   FsRadio  -label 'Delete Scratch:'
  74.        -items '$yes $no' -name radio
  75.            -var scr=$yes -parent form3;
  76.  
  77.   FsRadio  -label 'Notify when job is done:'
  78.        -items '$yes $no' -name radio
  79.            -var not=$no -parent form3;
  80.  
  81.   FsRadio  -label 'Save old files:'
  82.        -items '$yes $no' -name radio
  83.            -var old=$yes -parent form3;
  84.  
  85.   FsSeparator -name separator;
  86.  
  87.   FsPushButton -label 'Start Job';
  88.   FsPushButton -label 'Job status';
  89.   FsPushButton -label Exit;
  90. "
  91.  
  92. # Plausibility checks:
  93. # --------------------
  94.  
  95. # Test filenames. $1: variable; $2: name
  96. # ---------------
  97.  
  98. testname()
  99. {
  100.   if [ ! -z "$1" ] ; then  
  101.     return 0;     # correct
  102.   else
  103.     mesg="$2 missing..."
  104.     return 1;     # erroneous
  105.   fi
  106. }
  107.  
  108. # Test Memory 
  109. # $1: value; $2: lower limit; $3: upper limit
  110.  
  111. testmem()
  112. {
  113. if [ -z "$1" ] ; then 
  114.   mesg="No Memory given..."; return 1; 
  115. else
  116.   var=`expr $1 : '.*\([^0-9]\).*'`
  117.   if [ -z "$var" ] ; then  
  118.     if [ $1 -lt $2 ] ; then 
  119.      mesg="$1<$2: Memory too small..."; 
  120.      return 1; fi
  121.     if [ $1 -gt $3 ] ; then 
  122.      mesg="$1>$3: Memory too large..."; 
  123.      return 1; fi
  124.     return 0;                          
  125.   else
  126.     mesg="Bad memory value..."; return 1;     
  127.   fi
  128. fi
  129. }
  130.  
  131. # Begin Finesse dialog, open input window
  132. # ---------------------------------------
  133.  
  134. Fsopen "$@"                                
  135.  
  136. Fsdisplay -w "$naswin" -m "Nastran Input"
  137. if [ "$fsbutton" != "o" ] ; then 
  138.  Fsclose; exit 0; fi
  139.  
  140. # Check variables, on error reopen window
  141. #----------------------------------------
  142.  
  143. memlower=10
  144. smemlower=10
  145. memupper=100
  146. smemupper=100
  147.  
  148. until testname "$jid" "$jidname" &&
  149.       testname "$rcf" "$rcfname" &&
  150.       testname "$sdi" "$sdiname" &&
  151.       testmem $mem $memlower $memupper &&
  152.       testmem $smem $smemlower $smemupper
  153. do
  154.   Fsdisplay -n naswin -m "$mesg"
  155.   if [ "$fsbutton" != "o" ] ; then 
  156.    Fsclose; exit 0; fi
  157. done
  158.  
  159. Fssave
  160.  
  161. # OK, start job
  162. # -------------
  163.  
  164. # ...
  165. # $EXE_NAME jid=$jid rcf=$rcf sdi=$sdi\
  166.    mem=$mem smem=$smem bat=$bat scr=$scr\
  167.    not=$not prt=$prt old=$old
  168. # ...
  169.  
  170. Fsclose
  171.